En Elixir, abandonamos el modelo imperativo de modificar el estado en favor de un enfoque basado en flujos donde los programas son transformaciones discretas, transformaciones puras. En lugar de decirle al ordenador cómo cómo cambiar un valor, definimos una secuencia de funciones donde La programación debe centrarse en transformar datos.
1. El Mandato de Inmutabilidad
En Elixir, todos los valores son inmutables. Una vez que se crea un dato, no puede modificarse. Esto garantiza que Los datos inmutables son datos conocidos—la información nunca cambiará inesperadamente, eliminando grandes categorías de errores relacionados con el estado. Esta transformación nunca modifica datos; en cambio, cada función crea una nueva versión fresca de los datos.
2. La Filosofía del Operador de Canalización
El operador de canalización (|>) trata los datos como un fluido que fluye por una línea de producción. Un lenguaje de programación funcional nos permite pensar en términos de funciones que transforman datos paso a paso.
3. El Contexto de Actores
En la Máquina Virtual de Erlang (BEAM), el código se ejecuta en pequeños procesos concurrentes, cada uno con su propio estado. Los procesos se comunican entre sí mediante mensajes. Debido a que la comunicación ocurre mediante envío de mensajes, el intercambio de datos entre diferentes máquinas en una red se gestiona de forma transparente por la VM.